package LineCode.剑指Offer.代码的鲁棒性;

import LineCode.剑指Offer.Utils.ListNodeUtil;
import LineCode.剑指Offer.dto.ListNode;

/**
 * 输入一个链表，反转链表后，输出链表的所有元素。
 */
public class 反转链表 {

    public static void main(String[] args) {
        ListNode node = ListNodeUtil.makeListNode(new int[]{1, 2, 3, 4, 5});
        ListNodeUtil.printListNode(node);
        ListNodeUtil.printListNode(ReverseList(node));
    }


    public static ListNode ReverseList(ListNode head) {
        ListNode next = null;
        ListNode pre = null;
        while (head != null) {
            next = head.next;
            head.next = pre;
            pre = head;
            head = next;
        }
        return pre;
    }


}
